using System;
using System.Collections.Generic;
using System.Text;

namespace Weazel.Microblaze.Simulator.Components.Microblaze
{
    public class InstructionSet
    {
        public Instructions.Add Add = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Add();
        public Instructions.Addi Addi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Addi();
        public Instructions.And And = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.And();
        public Instructions.Andi Andi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Andi();
        public Instructions.Andn Andn = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Andn();
        public Instructions.Andni Andni = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Andni();
        public Instructions.Beq Beq = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Beq();
        public Instructions.Beqi Beqi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Beqi();
        public Instructions.Bge Bge = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bge();
        public Instructions.Bgei Bgei = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bgei();
        public Instructions.Bgt Bgt = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bgt();
        public Instructions.Bgti Bgti = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bgti();
        public Instructions.Ble Ble = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Ble();
        public Instructions.Blei Blei = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Blei();
        public Instructions.Blt Blt = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Blt();
        public Instructions.Blti Blti = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Blti();
        public Instructions.Bne Bne = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bne();
        public Instructions.Bnei Bnei = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bnei();
        public Instructions.Br Br = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Br();
        public Instructions.Bri Bri = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bri();
        public Instructions.Brk Brk = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Brk();
        public Instructions.Brki Brki = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Brki();
        public Instructions.Bs Bs = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bs();
        public Instructions.Bsi Bsi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Bsi();
        public Instructions.Cmp Cmp = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Cmp();
        public Instructions.Get Get = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Get();
        public Instructions.Idiv Idiv = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Idiv();
        public Instructions.Imm Imm = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Imm();
        public Instructions.Lbu Lbu = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lbu();
        public Instructions.Lbui Lbui = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lbui();
        public Instructions.Lhu Lhu = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lhu();
        public Instructions.Lhui Lhui = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lhui();
        public Instructions.Lw Lw = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lw();
        public Instructions.Lwi Lwi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Lwi();
        public Instructions.Mfs Mfs = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Mfs();
        public Instructions.Msrclr Msrclr = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Msrclr();
        public Instructions.Msrset Msrset = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Msrset();
        public Instructions.Mts Mts = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Mts();
        public Instructions.Mul Mul = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Mul();
        public Instructions.Muli Muli = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Muli();
        public Instructions.Nop Nop = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Nop();
        public Instructions.Or Or = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Or();
        public Instructions.Ori Ori = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Ori();
        public Instructions.Pcmpbf Pcmpbf = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Pcmpbf();
        public Instructions.Pcmpeq Pcmpeq = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Pcmpeq();
        public Instructions.Pcmpne Pcmpne = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Pcmpne();
        public Instructions.Put Put = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Put();
        public Instructions.Rsub Rsub = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rsub();
        public Instructions.Rsubi Rsubi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rsubi();
        public Instructions.Rtbd Rtbd = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rtbd();
        public Instructions.Rted Rted = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rted();
        public Instructions.Rtid Rtid = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rtid();
        public Instructions.Rtsd Rtsd = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Rtsd();
        public Instructions.Sb Sb = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sb();
        public Instructions.Sbi Sbi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sbi();
        public Instructions.Sext16 Sext16 = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sext16();
        public Instructions.Sext8 Sext8 = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sext8();
        public Instructions.Sh Sh = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sh();
        public Instructions.Shi Shi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Shi();
        public Instructions.Sra Sra = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sra();
        public Instructions.Src Src = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Src();
        public Instructions.Srl Srl = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Srl();
        public Instructions.Sw Sw = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Sw();
        public Instructions.Swi Swi = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Swi();
        public Instructions.Wdc Wdc = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Wdc();
        public Instructions.Wic Wic = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Wic();
        public Instructions.Xor Xor = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Xor();
        public Instructions.Xori Xori = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.Xori();

        public Instructions.ErrorInstruction Error = new Weazel.Microblaze.Simulator.Components.Microblaze.Instructions.ErrorInstruction();

        public List<Instruction> List;

        public InstructionSet()
        {
            this.List = new List<Instruction>();

            List.Add(Add);
            List.Add(Addi);
            List.Add(And);
            List.Add(Andi);
            List.Add(Andn);
            List.Add(Andni);
            List.Add(Beq);
            List.Add(Beqi);
            List.Add(Bge);
            List.Add(Bgei);
            List.Add(Bgt);
            List.Add(Bgti);
            List.Add(Ble);
            List.Add(Blei);
            List.Add(Blt);
            List.Add(Blti);
            List.Add(Bne);
            List.Add(Bnei);
            List.Add(Br);
            List.Add(Bri);
            List.Add(Brk);
            List.Add(Brki);
            List.Add(Bs);
            List.Add(Bsi);
            List.Add(Cmp);
            List.Add(Get);
            List.Add(Idiv);
            List.Add(Imm);
            List.Add(Lbu);
            List.Add(Lbui);
            List.Add(Lhu);
            List.Add(Lhui);
            List.Add(Lw);
            List.Add(Lwi);
            List.Add(Mfs);
            List.Add(Msrclr);
            List.Add(Msrset);
            List.Add(Mts);
            List.Add(Mul);
            List.Add(Muli);
            List.Add(Nop);
            List.Add(Or);
            List.Add(Ori);
            List.Add(Pcmpbf);
            List.Add(Pcmpeq);
            List.Add(Pcmpne);
            List.Add(Put);
            List.Add(Rsub);
            List.Add(Rsubi);
            List.Add(Rtbd);
            List.Add(Rted);
            List.Add(Rtid);
            List.Add(Rtsd);
            List.Add(Sb);
            List.Add(Sbi);
            List.Add(Sext16);
            List.Add(Sext8);
            List.Add(Sh);
            List.Add(Shi);
            List.Add(Sra);
            List.Add(Src);
            List.Add(Srl);
            List.Add(Sw);
            List.Add(Swi);
            List.Add(Wdc);
            List.Add(Wic);
            List.Add(Xor);
            List.Add(Xori);
        }
    }
}
